//package com.wangji92.arthas.plugin.demo.test;
//
//import sun.security.ec.point.Point;
//
//import java.util.HashMap;
//import java.util.Map;
//
////class Point {
////    int x;
////    int y;
////    Point(int a, int b) { x = a; y = b; }
////}
//
//public class Solution {
//    public static void main(String[] args) {
//        int[][] vals = {{2,3},{3,3},{-5,3}};
//        Point[] points = new Point[3];
//
//        for (int i=0; i<vals.length; i++){
//            points[i] = new Point(vals[i][0], vals[i][1]);
//        }
//
//        Solution solution = new Solution();
//
//        System.out.println(solution.maxPoints(points));
//    }
//
//
//    public int maxPoints(Point[] points) {
//        if (points.length <= 2) {
//            return points.length;
//        }
//
//        int max = 2;
//        for (int i = 0; i < points.length - 1; i++) {
//            Map<Float, Integer> map = new HashMap<>(16);
//            // 记录垂直点数; 当前和Points[i]在一条线上的最大点数; 和Points[i]垂直的点数
//            int ver = 0, cur, dup = 0;
//            for (int j = i + 1; j < points.length; j++) {
//                if (points[j].x == points[i].x) {
//                    if (points[j].y != points[i].y) {
//                        ver++;
//                    } else {
//                        dup++;
//                    }
//                } else {
//                    float d = (float)((points[j].y - points[i].y) / (double) (points[j].x - points[i].x));
//                    map.put(d, map.get(d) == null ? 1 : map.get(d) + 1);
//                }
//            }
//
//            cur = ver;
//            for (int v : map.values()) {
//                cur = Math.max(v, cur);
//            }
//
//            max = Math.max(max, cur + dup + 1);
//        }
//        return max;
//    }
//}
